#pragma once

#include <QMutex>

#include "AbstractStdTable.h"

class HyperTraceSymbolTable : public AbstractStdTable {
  Q_OBJECT
 public:
  HyperTraceSymbolTable(QWidget* parent = nullptr);

  QString getCellContent(int r, int c) override;
  bool isValidIndex(int r, int c) override;
  void sortRows(int column, bool ascending) override;

  friend class HyperTraceView;
  friend class SearchListViewSymbols;
  friend class SymbolSearchList;

 private:
  std::vector<duint> mModules;
  std::vector<SYMBOLPTR> mData;
  QMutex mMutex;

  enum { ColAddr, ColDecorated};
};
